from qiniu import Auth, put_data, etag
import qiniu.config
import os
from ihome.settings import QINIU_ACCESS_KEY,QINIU_SECRET_KEY,BASE_DIR

def demo(file_data):
    '''
    通过七牛云上传图片，并且返回图片的名字
    :param file_data: 要上传的文件二进制字节流数据
    :return: 返回图片的名字
    '''
    #需要填写你的 Access Key 和 Secret Key
    access_key = QINIU_ACCESS_KEY
    secret_key = QINIU_SECRET_KEY
    #构建鉴权对象
    q = Auth(access_key, secret_key)
    #要上传到的七牛云的空间的名字
    bucket_name = '1zz1'
    #上传后保存的文件名
    # key = '123456'
    #生成上传 Token，可以指定过期时间等，#3600为token过期时间，秒为单位。3600等于一小时
    token = q.upload_token(bucket_name, None, 3600)
    # # #要上传文件的本地路径
    # localfile = os.path.join(os.path.dirname(BASE_DIR)+'/111.jpg')
    # ret, info = put_file(token, key, localfile)

    # 要上传文件的二进制流数据
    ret, info = put_data(token, None, file_data)
    print(info)
    print("*****")
    print(ret)

    if info.status_code == 200:
        # 表示上传成功,返回文件名
        # return ret.get('key')
        return ret['key']
    else:
        # 上传失败
        raise Exception('上传图片失败')

if __name__ == '__main__':

    with open('../1.jpg','rb') as f:
        a = f.read()
        s = demo(a)
        print(s)

